﻿/*------------------------------------------------------------------------

VERTEXFMT.HPP v1.0.2

Copyright 楊志賢 CxxlMan, 2014
All Rights Reserved

------------------------------------------------------------------------*/

#if !defined(__VERTEXFMT_HPP_Cxxl3D)
#define __VERTEXFMT_HPP_Cxxl3D

#include <Sys\VECTOR.HPP>

namespace Cxxl3D
{

// 含頂點 位置 顏色
struct tagVERTEXFMT_C
{
  struct tagPosition
  {
    C3D_FLOAT px, py, pz;
  }Position;


  struct tagColor
  {
    C3D_BYTE r, g, b, a;
  }Color;
};


// 含頂點 位置 法向量
struct tagVERTEXFMT_N
{
  struct tagPosition
  {
    C3D_FLOAT px, py, pz;
  }Position;

  struct tagNormal
  {
    C3D_FLOAT nx, ny, nz;
  }Normal;
};


// 含頂點 位置 法向量 顏色
struct tagVERTEXFMT_NC
{
  struct tagPosition
  {
    C3D_FLOAT px, py, pz;
  }Position;

  struct tagNormal
  {
    C3D_FLOAT nx, ny, nz;
  }Normal;

  struct tagColor
  {
    C3D_BYTE r, g, b, a;
  }Color;
};

// 含頂點 位置 法向量 貼圖座標
// 結構中不包含貼圖資料來源
struct tagVERTEXFMT_NT
{
  struct tagPosition
  {
    C3D_FLOAT px, py, pz;
  }Position;

  struct tagNormal
  {
    C3D_FLOAT nx, ny, nz;
  }Normal;

  struct tagTexture
  {
    C3D_FLOAT u, v;
  }Texture;
};

// 含頂點 位置 貼圖座標
// 結構中不包含貼圖資料來源
struct tagVERTEXFMT_T
{
  struct tagPosition
  {
    C3D_FLOAT px, py, pz;
  }Position;

  struct tagTexture
  {
    C3D_FLOAT u, v;
  }Texture;
};

// 像素格式
struct tagPIXEL
{
  C3D_BYTE r, g, b, a;
};



}   /* namespace Cxxl3D */
#endif



